package test.enums;

/**
 * @author zhenjie.Ji
 * @description 车端数据请求TLV格式类型
 * @date 2025/2/6 13:35
 */
public enum FieldType {
    /**
     * 请求头
     */
    REQ_HEAD("01"),
    /**
     * 请求头-流水号
     */
    REQ_HEAD_TRANSITION_ID("10"),
    /**
     * 请求头-随机数
     */
    REQ_HEAD_RANDOM("11"),
    /**
     * 请求头-强民算法
     */
    REQ_HEAD_SIGNATURE_ALG("12"),
    /**
     * 请求体
     */
    REQ_BODY("02"),
    /**
     * 请求体-车架号
     */
    REQ_BODY_VIN("30"),
    /**
     * 请求体-蓝牙ble地址
     */
    REQ_BODY_BLE_MAC("31"),
    /**
     * 请求体-加密算法
     */
    REQ_BODY_ENCRYPT_ALG("32"),
    /**
     * 请求体-车端主密钥
     */
    REQ_BODY_VEHICLE_MASTER_KEY("33"),
    /**
     * 请求体-版本号
     */
    REQ_BODY_VERSION("34"),
    /**
     * 请求签名
     */
    REQ_SIGN("03");
    private final String type;

    FieldType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public static FieldType fromType(String type) {
        for (FieldType fieldType : values()) {
            if (fieldType.getType().equals(type)) {
                return fieldType;
            }
        }
        throw new IllegalArgumentException("Unknown type: " + type);
    }
}
